{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# [通过OCR实现验证码识别](https://www.paddlepaddle.org.cn/documentation/docs/zh/practices/cv/image_ocr.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/utils/cpp_extension/extension_utils.py:711: UserWarning: No ccache found. Please be aware that recompiling all source files may be required. You can download and install ccache from: https://github.com/ccache/ccache/blob/master/doc/INSTALL.md\n",
      "  warnings.warn(warning_message)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.0.0-rc0\n"
     ]
    }
   ],
   "source": [
    "import paddle\n",
    "\n",
    "print(paddle.__version__)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "import PIL.Image as Image\n",
    "import numpy as np\n",
    "from paddle.io import Dataset\n",
    "\n",
    "# 图片信息配置 - 通道数、高度、宽度\n",
    "IMAGE_SHAPE_C = 3\n",
    "IMAGE_SHAPE_H = 30\n",
    "IMAGE_SHAPE_W = 70\n",
    "# 数据集图片中标签长度最大值设置 - 因图片中均为4个字符，故该处填写为4即可\n",
    "LABEL_MAX_LEN = 4\n",
    "\n",
    "\n",
    "class Reader(Dataset):\n",
    "    def __init__(self, data_path: str, is_val: bool = False):\n",
    "        \"\"\"\n",
    "        数据读取Reader\n",
    "        :param data_path: Dataset路径\n",
    "        :param is_val: 是否为验证集\n",
    "        \"\"\"\n",
    "        super().__init__()\n",
    "        self.data_path = data_path\n",
    "        # 读取Label字典\n",
    "        with open(\n",
    "            os.path.join(self.data_path, \"label_dict.txt\"),\n",
    "            \"r\",\n",
    "            encoding=\"utf-8\",\n",
    "        ) as f:\n",
    "            self.info = eval(f.read())\n",
    "        # 获取文件名列表\n",
    "        self.img_paths = [img_name for img_name in self.info]\n",
    "        # 将数据集后1024张图片设置为验证集，当is_val为真时img_path切换为后1024张\n",
    "        self.img_paths = (\n",
    "            self.img_paths[-1024:] if is_val else self.img_paths[:-1024]\n",
    "        )\n",
    "\n",
    "    def __getitem__(self, index):\n",
    "        # 获取第index个文件的文件名以及其所在路径\n",
    "        file_name = self.img_paths[index]\n",
    "        file_path = os.path.join(self.data_path, file_name)\n",
    "        # 捕获异常 - 在发生异常时终止训练\n",
    "        try:\n",
    "            # 使用Pillow来读取图像数据\n",
    "            img = Image.open(file_path)\n",
    "            # 转为Numpy的array格式并整体除以255进行归一化\n",
    "            img = (\n",
    "                np.array(img, dtype=\"float32\").reshape(\n",
    "                    (IMAGE_SHAPE_C, IMAGE_SHAPE_H, IMAGE_SHAPE_W)\n",
    "                )\n",
    "                / 255\n",
    "            )\n",
    "        except Exception as e:\n",
    "            raise Exception(\n",
    "                file_name\n",
    "                + \"\\t文件打开失败，请检查路径是否准确以及图像文件完整性，报错信息如下:\\n\"\n",
    "                + str(e)\n",
    "            )\n",
    "        # 读取该图像文件对应的Label字符串，并进行处理\n",
    "        label = self.info[file_name]\n",
    "        label = list(label)\n",
    "        # 将label转化为Numpy的array格式\n",
    "        label = np.array(label, dtype=\"int32\")\n",
    "\n",
    "        return img, label\n",
    "\n",
    "    def __len__(self):\n",
    "        # 返回每个Epoch中图片数量\n",
    "        return len(self.img_paths)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "模型方面使用的简单的CRNN-CTC结构，输入形为CHW的图像在经过CNN->Flatten->Linear->RNN->Linear后输出图像中每个位置所对应的字符概率。考虑到CTC解码器在面对图像中元素数量不一、相邻元素重复时会存在无法正确对齐等情况，故额外添加一个类别代表“分隔符”进行改善。\n",
    "\n",
    "CTC相关论文：[Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neu](http://people.idsia.ch/~santiago/papers/icml2006.pdf)\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/f9458cedbb4441d682f15fefd3f3cae5e49d499bcf0a4bbdb976dfdff5a2e656)\n",
    "网络部分，因本篇采用数据集较为简单且图像尺寸较小并不适合较深层次网络。若在对尺寸较大的图像进行模型构建，可以考虑使用更深层次网络/注意力机制来完成。当然也可以通过目标检测形式先检出文本位置，然后进行OCR部分模型构建。\n",
    "![](https://ai-studio-static-online.cdn.bcebos.com/19ddf6107e7f47ee9b3b84ee0c12de1e15f7ab8b88f04eed95232440c92fe0d7)\n",
    "[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import paddle\n",
    "\n",
    "# 分类数量设置 - 因数据集中共包含0~9共10种数字+分隔符，所以是11分类任务\n",
    "CLASSIFY_NUM = 11\n",
    "\n",
    "# 定义输入层，shape中第0维使用-1则可以在预测时自由调节batch size\n",
    "input_define = paddle.static.InputSpec(\n",
    "    shape=[-1, IMAGE_SHAPE_C, IMAGE_SHAPE_H, IMAGE_SHAPE_W],\n",
    "    dtype=\"float32\",\n",
    "    name=\"img\",\n",
    ")\n",
    "\n",
    "\n",
    "# 定义网络结构\n",
    "class Net(paddle.nn.Layer):\n",
    "    def __init__(self, is_infer: bool = False):\n",
    "        super().__init__()\n",
    "        self.is_infer = is_infer\n",
    "\n",
    "        # 定义一层3x3卷积+BatchNorm\n",
    "        self.conv1 = paddle.nn.Conv2D(\n",
    "            in_channels=IMAGE_SHAPE_C, out_channels=32, kernel_size=3\n",
    "        )\n",
    "        self.bn1 = paddle.nn.BatchNorm2D(32)\n",
    "        # 定义一层步长为2的3x3卷积进行下采样+BatchNorm\n",
    "        self.conv2 = paddle.nn.Conv2D(\n",
    "            in_channels=32, out_channels=64, kernel_size=3, stride=2\n",
    "        )\n",
    "        self.bn2 = paddle.nn.BatchNorm2D(64)\n",
    "        # 定义一层1x1卷积压缩通道数，输出通道数设置为比LABEL_MAX_LEN稍大的定值可获取更优效果，当然也可设置为LABEL_MAX_LEN\n",
    "        self.conv3 = paddle.nn.Conv2D(\n",
    "            in_channels=64, out_channels=LABEL_MAX_LEN + 4, kernel_size=1\n",
    "        )\n",
    "        # 定义全连接层，压缩并提取特征（可选）\n",
    "        self.linear = paddle.nn.Linear(in_features=429, out_features=128)\n",
    "        # 定义RNN层来更好提取序列特征，此处为双向LSTM输出为2 x hidden_size，可尝试换成GRU等RNN结构\n",
    "        self.lstm = paddle.nn.LSTM(\n",
    "            input_size=128, hidden_size=64, direction=\"bidirectional\"\n",
    "        )\n",
    "        # 定义输出层，输出大小为分类数\n",
    "        self.linear2 = paddle.nn.Linear(\n",
    "            in_features=64 * 2, out_features=CLASSIFY_NUM\n",
    "        )\n",
    "\n",
    "    def forward(self, ipt):\n",
    "        # 卷积 + ReLU + BN\n",
    "        x = self.conv1(ipt)\n",
    "        x = paddle.nn.functional.relu(x)\n",
    "        x = self.bn1(x)\n",
    "        # 卷积 + ReLU + BN\n",
    "        x = self.conv2(x)\n",
    "        x = paddle.nn.functional.relu(x)\n",
    "        x = self.bn2(x)\n",
    "        # 卷积 + ReLU\n",
    "        x = self.conv3(x)\n",
    "        x = paddle.nn.functional.relu(x)\n",
    "        # 将3维特征转换为2维特征 - 此处可以使用reshape代替\n",
    "        x = paddle.tensor.flatten(x, 2)\n",
    "        # 全连接 + ReLU\n",
    "        x = self.linear(x)\n",
    "        x = paddle.nn.functional.relu(x)\n",
    "        # 双向LSTM - [0]代表取双向结果，[1][0]代表forward结果,[1][1]代表backward结果，详细说明可在官方文档中搜索'LSTM'\n",
    "        x = self.lstm(x)[0]\n",
    "        # 输出层 - Shape = (Batch Size, Max label len, Signal)\n",
    "        x = self.linear2(x)\n",
    "\n",
    "        # 在计算损失时ctc-loss会自动进行softmax，所以在预测模式中需额外做softmax获取标签概率\n",
    "        if self.is_infer:\n",
    "            # 输出层 - Shape = (Batch Size, Max label len, Prob)\n",
    "            x = paddle.nn.functional.softmax(x)\n",
    "            # 转换为标签\n",
    "            x = paddle.argmax(x, axis=-1)\n",
    "        return x\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据集路径设置\n",
    "DATA_PATH = \"../datasets/OCR_Dataset\"\n",
    "# 训练轮数\n",
    "EPOCH = 10\n",
    "# 每批次数据大小\n",
    "BATCH_SIZE = 16\n",
    "\n",
    "label_define = paddle.static.InputSpec(\n",
    "    shape=[-1, LABEL_MAX_LEN], dtype=\"int32\", name=\"label\"\n",
    ")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 定义CTC Loss\n",
    "了解CTC解码器效果后，我们需要在训练中让模型尽可能接近这种类型输出形式，那么我们需要定义一个CTC Loss来计算模型损失。不必担心，在飞桨框架中内置了多种Loss，无需手动复现即可完成损失计算。\n",
    "\n",
    "使用文档：[CTCLoss](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0-beta/api/paddle/nn/functional/loss/ctc_loss_cn.html#ctc-loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "class CTCLoss(paddle.nn.Layer):\n",
    "    def __init__(self):\n",
    "        \"\"\"\n",
    "        定义CTCLoss\n",
    "        \"\"\"\n",
    "        super().__init__()\n",
    "\n",
    "    def forward(self, ipt, label):\n",
    "        input_lengths = paddle.full(\n",
    "            shape=[BATCH_SIZE], fill_value=LABEL_MAX_LEN + 4, dtype=\"int64\"\n",
    "        )\n",
    "        label_lengths = paddle.full(\n",
    "            shape=[BATCH_SIZE], fill_value=LABEL_MAX_LEN, dtype=\"int64\"\n",
    "        )\n",
    "        # 按文档要求进行转换dim顺序\n",
    "        ipt = paddle.tensor.transpose(ipt, [1, 0, 2])\n",
    "        # 计算loss\n",
    "        loss = paddle.nn.functional.ctc_loss(\n",
    "            ipt, label, input_lengths, label_lengths, blank=10\n",
    "        )\n",
    "        return loss\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "W0120 19:05:30.009088 30864 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 12.2, Runtime API Version: 11.8\n",
      "W0120 19:05:30.010317 30864 gpu_resources.cc:164] device: 0, cuDNN Version: 8.9.\n"
     ]
    }
   ],
   "source": [
    "# 实例化模型\n",
    "model = paddle.Model(Net(), inputs=input_define, labels=label_define)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义优化器\n",
    "optimizer = paddle.optimizer.Adam(\n",
    "    learning_rate=0.0001, parameters=model.parameters()\n",
    ")\n",
    "\n",
    "# 为模型配置运行环境并设置该优化策略\n",
    "model.prepare(optimizer=optimizer, loss=CTCLoss())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The loss value printed in the log is the current step, and the metric is the average value of previous steps.\n",
      "Epoch 1/10\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 526/526 [==============================] - loss: 0.6267 - 11ms/step                            \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/0\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.6090 - ETA: 0.42219367027282717s - 10ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.6299 - ETA: 0.22043738365173338s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.5840 - 9ms/step                            \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eval samples: 1024\n",
      "Epoch 2/10\n",
      "step 526/526 [==============================] - loss: 0.2495 - 10ms/step                            \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/1\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.1834 - ETA: 0.47041864395141597s - 11ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.2807 - ETA: 0.23360023498535154s - 10ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.1914 - 9ms/step                            \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eval samples: 1024\n",
      "Epoch 3/10\n",
      "step 526/526 [==============================] - loss: 0.1073 - 10ms/step                             \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/2\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.1290 - ETA: 0.4009437561035156s - 9ms/step "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.2456 - ETA: 0.21976046562194826s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.1243 - 9ms/step                            \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eval samples: 1024\n",
      "Epoch 4/10\n",
      "step 526/526 [==============================] - loss: 0.0506 - 10ms/step                             \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/3\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.1074 - ETA: 0.4038218021392822s - 9ms/step "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.1948 - ETA: 0.21314449310302733s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.0780 - 9ms/step                            \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eval samples: 1024\n",
      "Epoch 5/10\n",
      "step 526/526 [==============================] - loss: 0.0304 - 10ms/step                             \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/4\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.1066 - ETA: 0.4135401248931885s - 9ms/step "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.1609 - ETA: 0.21505951881408691s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.0741 - 9ms/step                            \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eval samples: 1024\n",
      "Epoch 6/10\n",
      "step 526/526 [==============================] - loss: 0.0670 - 10ms/step                            \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/5\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.0873 - ETA: 0.3935233592987061s - 9ms/step "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 50/64 [======================>.......] - loss: 0.0268 - ETA: 0.1185410976409912s - 8ms/step "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.0628 - 8ms/step                            \n",
      "Eval samples: 1024\n",
      "Epoch 7/10\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 526/526 [==============================] - loss: 0.0212 - 10ms/step                            \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/6\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.0855 - ETA: 0.42766232490539546s - 10ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.0992 - ETA: 0.2292639255523682s - 10ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.0499 - 9ms/step                             \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eval samples: 1024\n",
      "Epoch 8/10\n",
      "step 526/526 [==============================] - loss: 0.0145 - 10ms/step                             \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/7\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.0832 - ETA: 0.40416955947875977s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.0832 - ETA: 0.21283249855041506s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.0512 - 9ms/step                            \n",
      "Eval samples: 1024\n",
      "Epoch 9/10\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 526/526 [==============================] - loss: 0.0193 - 10ms/step                            \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/8\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.0810 - ETA: 0.39405469894409184s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.0638 - ETA: 0.2091598033905029s - 9ms/step "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.0419 - 9ms/step                             \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/nn/layer/norm.py:818: UserWarning: When training, we now always track global mean and variance.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eval samples: 1024\n",
      "Epoch 10/10\n",
      "step 526/526 [==============================] - loss: 0.0200 - 10ms/step                             \n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/9\n",
      "Eval begin...\n",
      "step 20/64 [========>.....................] - loss: 0.0783 - ETA: 0.4006211757659912s - 9ms/step "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 40/64 [=================>............] - loss: 0.0679 - ETA: 0.20914692878723143s - 9ms/step"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step 64/64 [==============================] - loss: 0.0378 - 9ms/step                             \n",
      "Eval samples: 1024\n",
      "save checkpoint at /home/AI/paddlepaddle_learn/output/final\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n",
      "/usr/local/miniconda3/envs/paddle/lib/python3.8/site-packages/paddle/tensor/creation.py:943: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach(), rather than paddle.to_tensor(sourceTensor).\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "# 执行训练\n",
    "model.fit(\n",
    "    train_data=Reader(DATA_PATH),\n",
    "    eval_data=Reader(DATA_PATH, is_val=True),\n",
    "    batch_size=BATCH_SIZE,\n",
    "    epochs=EPOCH,\n",
    "    save_dir=\"../output/\",\n",
    "    save_freq=1,\n",
    "    verbose=1,\n",
    "    drop_last=True,\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 与训练近似，但不包含Label\n",
    "class InferReader(Dataset):\n",
    "    def __init__(self, dir_path=None, img_path=None):\n",
    "        \"\"\"\n",
    "        数据读取Reader(预测)\n",
    "        :param dir_path: 预测对应文件夹（二选一）\n",
    "        :param img_path: 预测单张图片（二选一）\n",
    "        \"\"\"\n",
    "        super().__init__()\n",
    "        if dir_path:\n",
    "            # 获取文件夹中所有图片路径\n",
    "            self.img_names = [\n",
    "                i\n",
    "                for i in os.listdir(dir_path)\n",
    "                if os.path.splitext(i)[1] == \".jpg\"\n",
    "            ]\n",
    "            self.img_paths = [os.path.join(dir_path, i) for i in self.img_names]\n",
    "        elif img_path:\n",
    "            self.img_names = [os.path.split(img_path)[1]]\n",
    "            self.img_paths = [img_path]\n",
    "        else:\n",
    "            raise Exception(\"请指定需要预测的文件夹或对应图片路径\")\n",
    "\n",
    "    def get_names(self):\n",
    "        \"\"\"\n",
    "        获取预测文件名顺序\n",
    "        \"\"\"\n",
    "        return self.img_names\n",
    "\n",
    "    def __getitem__(self, index):\n",
    "        # 获取图像路径\n",
    "        file_path = self.img_paths[index]\n",
    "        # 使用Pillow来读取图像数据并转成Numpy格式\n",
    "        img = Image.open(file_path)\n",
    "        img = (\n",
    "            np.array(img, dtype=\"float32\").reshape(\n",
    "                (IMAGE_SHAPE_C, IMAGE_SHAPE_H, IMAGE_SHAPE_W)\n",
    "            )\n",
    "            / 255\n",
    "        )\n",
    "        return img\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.img_paths)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 待预测目录 - 可在测试数据集中挑出\\b3张图像放在该目录中进行推理\n",
    "INFER_DATA_PATH = \"../datasets/OCR_Dataset/test\"\n",
    "# 训练后存档点路径 - final 代表最终训练所得模型\n",
    "CHECKPOINT_PATH = \"../output/final.pdparams\"\n",
    "# 每批次处理数量\n",
    "BATCH_SIZE = 32\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x1000 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.figure(figsize=(10, 10))\n",
    "sample_idxs = np.random.choice(50000, size=25, replace=False)\n",
    "\n",
    "for img_id, img_name in enumerate(os.listdir(INFER_DATA_PATH)):\n",
    "    plt.subplot(1, 3, img_id + 1)\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])\n",
    "    im = Image.open(os.path.join(INFER_DATA_PATH, img_name))\n",
    "    plt.imshow(im, cmap=plt.cm.binary)\n",
    "    plt.xlabel(\"Img name: \" + img_name)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Predict begin...\n",
      "step 1/1 [==============================] - 7ms/step\n",
      "Predict samples: 3\n",
      "文件名：91.jpg，推理结果为：[9, 5, 2, 2]\n",
      "文件名：61.jpg，推理结果为：[7, 0, 4, 0]\n",
      "文件名：81.jpg，推理结果为：[5, 5, 9, 7]\n"
     ]
    }
   ],
   "source": [
    "# 编写简易版解码器\n",
    "def ctc_decode(text, blank=10):\n",
    "    \"\"\"\n",
    "    简易CTC解码器\n",
    "    :param text: 待解码数据\n",
    "    :param blank: 分隔符索引值\n",
    "    :return: 解码后数据\n",
    "    \"\"\"\n",
    "    result = []\n",
    "    cache_idx = -1\n",
    "    for char in text:\n",
    "        if char != blank and char != cache_idx:\n",
    "            result.append(char)\n",
    "        cache_idx = char\n",
    "    return result\n",
    "\n",
    "\n",
    "# 实例化推理模型\n",
    "model = paddle.Model(Net(is_infer=True), inputs=input_define)\n",
    "# 加载训练好的参数模型\n",
    "model.load(CHECKPOINT_PATH)\n",
    "# 设置运行环境\n",
    "model.prepare()\n",
    "\n",
    "# 加载预测Reader\n",
    "infer_reader = InferReader(INFER_DATA_PATH)\n",
    "img_names = infer_reader.get_names()\n",
    "results = model.predict(infer_reader, batch_size=BATCH_SIZE)\n",
    "index = 0\n",
    "for text_batch in results[0]:\n",
    "    for prob in text_batch:\n",
    "        out = ctc_decode(prob, blank=10)\n",
    "        print(f\"文件名：{img_names[index]}，推理结果为：{out}\")\n",
    "        index += 1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "paddle",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.20"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
